/********************************************************************************
 * Project Name		[JavaSE_Fundamentals]
 * File Name     	[LogicalOperators.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package basicGrammar.operators;

/**
 * 逻辑运算符<br/>
 * 
 * &, |, ^, !, &&, || <br/>
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public class LogicalOperators {

	/**
	 * 逻辑运算
	 * 
	 * @param b1
	 * @param b2
	 * @param b3
	 */
	public static void logicalOperator(boolean b1, boolean b2, boolean b3) {
		// 短路与运算: 如果第一个表达式结果为false, 那么整个表达式的结果就是false, 后面的表达式不再运算
		if (b1 && b2 && b3) {
			System.out.println("变量b1, b2, b3都为true");
		} else {
			System.out.println("变量b1, b2, b3至少有一个是false");
		}

		// 短路或运算: 如果第一个表达式结果为true, 那么整个表达式的结果就是true, 后面的表达式不再运算
		if (b1 || b2 || b3) {
			System.out.println("变量b1, b2, b3至少有一个true");
		} else {
			System.out.println("变量b1, b2, b3都是false");
		}

		// 异或运算: 操作数相同为false, 不同为true
		if (b1 ^ b2) {
			System.out.println("b1, b2的值不同");
		} else {
			System.out.println("b1, b2的值相同");
		}
	}

	public static void main(String[] args) {
		logicalOperator(true, false, false);
	}
}
